package com.cz.mydao.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.cz.mydao.annotation.PrimaryKey;
import com.cz.mydao.annotation.Table;
import com.cz.mydao.annotation.TableField;
import com.cz.mydao.constant.SqlKey;
import com.cz.mydao.enumeration.DeleteType;
import com.cz.mydao.enumeration.FillPolicy;
import com.cz.mydao.enumeration.IdType;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

/**
 * @descriptions: Excel 人员类
 * @author: Joker.
 * @date: 2024/12/23 18:10
 * @version: 1.0
 */
@Data
public class StaffExcelVo {

    /**
     *  人员ID
     */
    @ExcelProperty("ID")
    @ColumnWidth(10)
    private String id;

    /**
     * 人员姓名
     */
    @ExcelProperty("员工姓名")
    @ColumnWidth(20)
    private String name;

    /**
     * 性别
     */
    @ExcelProperty("员工性别")
    @ColumnWidth(5)
    private String gender;

    /**
     * 科室编码
     */
    @ExcelProperty("科室编码")
    @ColumnWidth(10)
    private String deptCode;

    /**
     * 科室名称
     */
    @ExcelProperty("科室名称")
    @ColumnWidth(10)
    private String deptName;

    /**
     * 薪资
     */
    @ExcelProperty("薪资")
    @ColumnWidth(10)
    private Double salary;

    /**
     * 创建时间
     */
    @ExcelProperty("创建时间")
    @ColumnWidth(10)
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @ExcelProperty("修改时间")
    @ColumnWidth(10)
    private LocalDateTime updateTime;

    public StaffExcelVo(String id, String name, String gender, String deptCode, String deptName, Double salary) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.deptCode = deptCode;
        this.deptName = deptName;
        this.salary = salary;
    }

    public StaffExcelVo(String id, String name, String gender, String deptCode, String deptName, Double salary, LocalDateTime createTime, LocalDateTime updateTime) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.deptCode = deptCode;
        this.deptName = deptName;
        this.salary = salary;
        this.createTime = createTime;
        this.updateTime = updateTime;
    }

    public StaffExcelVo(String name, String gender, String deptCode, String deptName, Double salary) {
        this.name = name;
        this.gender = gender;
        this.deptCode = deptCode;
        this.deptName = deptName;
        this.salary = salary;
    }

    public StaffExcelVo() {
    }

    @Override
    public String toString() {
        return "Staff{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", deptCode='" + deptCode + '\'' +
                ", deptName='" + deptName + '\'' +
                ", salary=" + salary +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
}
